package io.github.wppli.domain.task.repository;


import io.github.wppli.domain.task.model.entity.TaskEntity;

import java.util.List;

/**
 * @Author: jia-qiang ljq1024.cc
 * @desc: 任务服务仓储接口
 * @Date: 2024-06-20-21:11
 */
public interface ITaskRepository {

    /**
     * 查询发送MQ失败和超时1分钟未发送的MQ
     *
     * @return 未发送的任务消息列表10条
     */
    List<TaskEntity> queryNoSendMessageTaskList();

    /**
     * 发送 Task MQ 任务
     * @param taskEntity 任务实体对象
     */
    void sendMessage(TaskEntity taskEntity);

    /**
     * 发送MQ消息成功
     * @param userId 用户ID
     * @param messageId 消息ID
     */
    void updateTaskSendMessageCompleted(String userId, String messageId);

    /**
     * 发送MQ消息失败
     * @param userId 用户ID
     * @param messageId 消息ID
     */
    void updateTaskSendMessageFail(String userId, String messageId);
}
